一般一个逻辑系统代指一个集团如果没有两个SAP系统,可以在一个SAP系统中的两个不同的Client端完成。我选择了800作为发送方,而810作为接收方。 我将从800发送物料主数据到810中 如果参与ALE的两个集团不在同一SAP系统中,则需要在两边系统中分别为这两个集团设定逻辑系统名称,且要相同;如果是在同一SAP系统中不同集团之间,则只需要进行一次逻辑系统名称的定义即可 第六步检查发送端端口配置(WE21) IDoc或其状态记录总是通过端口和外部系统进行传递的,是IDoc接口中系统通信相关的基础配置,代表SAP系统和伙伴系统的通信途径。 目标系统使用的是前面创建的RFC接连 6种端口类型,应用于不同的的IDoc传输实现方式: ? 该界面中最重要的内容是处理代码(即为进行具体IDoc处理的功能模块或工作流的代号),数据在所指定的处理中被写入IDoc或是从IDoc中读取出 将其Process code改成MATM,保存。
SAP IDoc状态70 - This IDoc is saved as the original of an edited document.根据SAP的标准逻辑,一个IDoc一旦被修改了,SAP系统会自动创建一个新的 IDoc(状态70)来存储IDoc修改日志。 比如idoc # IDoc 208828452,由于库存不够,所以没有POST成功,状态51. 后来 02.11.2022 22:55:33, 某用户修改了idoc # 208828452 ,然后POST成功了这个IDoc.The original of the IDoc is stored in E0165DiagnosisThis IDoc is the original IDoc of the changed 0000000208828452.ProcedureThis IDoc cannot
IDoc接口應用于SAP系統與其他系統的業務數據交換過程,包含數據結構的定義以及數據的處理邏輯,其中的數據結構即為IDoc(intermediate document).IDoc是一種系統間通用的數據交換格式 ,通過IDoc,SAP系統可以和SAP系統和非SAP系統進行數據交換。 LOOP AT idoc_contrl. LOOP AT idoc_data WHERE docnum = idoc_contrl-docnum. CLEAR idoc_status. idoc_status-docnum = idoc_contrl-docnum. idoc_status-docnum = idoc_contrl-docnum. idoc_status-status = '51'.
这是ICS业务模式系列的最后一篇了,主要讲解IDOC的配置。 一、指定EDI传输的供应商逻辑地址 事务代码:WEL1 注意:上面逻辑地址是生产公司+内部客户。 直接赋值即可: 二、新建ABAP Connections: 事务代码:SM59 这里的目标主机应该是本机,所以这里填写的是本机服务器的地址 三、维护IDOC 另外放出几个事务代码,是检测IDOC的运行情况的: 1、BD87 : IDOC的执行状态,状态53代表成功,其余为失败! 2、WE02 : IDOC的所有记录; 下一篇业务模式系列的博文将讲述公司间采购STO的业务模式的操作和配置!
SAP IDoc报错-不允许功能模块 ABI_IDOC_DISPATCH-之对策 如下的IDoc,状态51,报错信息是”不允许功能模块:ABI_IDOC_DISPATCH”, 该报错的英文版是:Function module not allowed: ABI_IDOC_DISPATCH Idoc的信息类型(Message Type)是PURSAG_CREATE. 执行事务代码WE57 我们可以发现,function module ABI_IDOC_DISPATCH与Message Type PURSAG_CREATE之间没有建立分配关系。 执行事务代码BD87重新POST该Idoc,报错消失。 -完- 写于2023-8-4.
SAP MM 如何手工修改IDoc的状态? 如果修改IDoc状态,比如由51改成68,一般而言有如下几个方法: 1),如果想要批量修改多个IDoc状态,在SAP ERP 6 EHP 4以及后续版本里,可以在事务代码里SE38里执行程序: RC1 _IDOC_SET_STATUS.如下界面: 输入一到多个IDoc号码,输入new status 68. 2),如果是单个修改,可以在SE37事务代码里执行Function Module IDOC_STATUS_WRITE_TO_DATABASE. 如下界面: 参数IDOC_NUMBER:输入要修改状态的IDoc号码。 参数IDOC_STATUS:输入新的状态。 执行即可。 3),直接改表EDIDS。
SAP WE19复制一个IDoc产生一个新的IDoc执行事务代码WE19, 进入如下的Test Tool for IDoc Processing界面,输入一个existing IDoc号码200620409 最后根据Existing IDoc 是inbound 的还是outbound的,做相关处理:-如果是inbound 的IDoc(从外部系统传入SAP系统),则点击右上角的Standard Inbound 按钮进行POST ;-如果是outbound的IDoc(从SAP系统发往外部系统),则点击右上角的Test Standard outbound processing按钮进行处理,如下图示:复制的existing 的IDoc#200620409是一个outbound 的IDoc,所以点击Test Standard outbound processing按钮进行Post,回车,回车,SAP系统产生了新的IDoc号码
业务说明: 本功能是用在销售公司接单之后,向生产公司创建采购订单采购物料,系统通过IDOC的设置生成生产公司对销售公司的销售订单。 系统配置: 一、RFC连接配置: 目的是为了配置销售公司和生产公司之间的系统连接,有的时候销售公司和生产公司不在一个SAP Client里面,就需要通过这个RFC连接配置连在一起。 二、新建IDOC端口 事务代码WE21 ? 按上图的操作顺序,新建一个端口,将第一个步骤新建的RFC连接封装成一个IDOC端口 ? 保存采购订单之后,可以在抬头的关系里面看到相关的IDOC出入站 ? ? 十三、查看生成的销售订单 事务代码:BD87 输入入站的IDOC号码 ? 事务代码:VA03 ? ? 本文作者 | SAP梦心 联系方式 | 微信:W150112458(疯狂的程序员) 特别敬告 | 欢迎转载,转载请注明出处并保持原文内容,谢谢!
SAP IDoc Post不成功,报错 - A company code cannot be determined for LI 0000100061 – IDoc#4096出现如下报错:A company Proceed 背景是:这个IDoc是一个公司间STO的流程里,Billing过账后自动通过输出类型RD04触发的。 后台的配置OBCA,是有为LI/100061指派公司代码0001的,如下图: 在如下的IDoc segment E1EDK14-011里, ORGID的值是ZNMI. 我将OBCA的配置改成如下: 重新process这个IDoc,还是报相同的错误。 恢复配置,修改IDoc的segment E1EDK14-011里的公司代码, 重新process这个IDoc,不再报错了! -完- 写于2021-11-23.
SAP IDoc Post不成功,报错 - Conventional invoice verification no longer maintained as of Release 4.6- IDoc System Response IDoc document processing is terminated. No invoice documents are created. more details in our online documentation in the Basis Services/Communication section (BC-SRV) under IDoc 背景是:这个IDoc是一个公司间STO的流程里,Billing过账后自动通过输出类型RD04触发的。 重新Process这个IDoc, 这个报错就不再出现了。 -完- 写于2021-11-23.
SAP IDoc 报错- Function module not allowed SPEIDOC_INPUT_DESADV1 – 在公司间STO流程中,很多项目里实现了在外向交货单PGI之后,自动触发了 Inbound Delivery,一些项目里是通过IDoc的方式来实现的。 笔者在一个测试环境里,试图实现通过Idoc来触发inbound delivery的功能。做好了配置,以及设置好了IDoc的outbound parameter和inbound parameter。 BD87事务代码找到了进站的IDoc#4073,其状态为51,Post不成功,有报错。 Re-process这个IDoc就不再报这个错误了。 SAP system version: S4/HANA 1909. -完- 写于2021-11-21
"radio button edi convert idoc. IF IDOC_EDI = 'X'. " Choose idoc convert to edi. ELSEIF EDI_IDOC = 'X'. " Choose edi convert to idoc.. idoc_number = readresult+13(16). "get idoc number. = IDOC_DOMENT_ITAB. = IDOC_DOMENT_ITAB.
SAP 事务代码BD20不能处理状态为51的IDoc对于SAP IDoc相关的事务代码比如WE02,WE19,BD87等都比较熟悉,因为使用的比较多。但是对于事务代码BD20却很少使用。 1,IDoc# 0000000205623574.初始状态为64 (64 - IDoc ready to be passed to application),2,对于这个Idoc执行事务代码BD20,输入 IDoc号码,执行,系统对该IDoc做了POST,不过因故未能成功。 检查该IDoc的状态,3, 对于该IDoc重新执行事务代码BD20,输入IDoc号码,然后点击执行按钮,系统提示:No data could be selected.由此说明,事务代码BD20不识别(不处理 )状态为51的Idoc.4, IDoc#0000000204722017,状态是56 (56 - IDoc with errors added).试图对其执行事务代码BD20,输入Idoc号码,然后点击执行
SAP RFC函数测试工具 V1.1 工具下载: 地址1;地址2 A. 指导AI写了个小工具,方便SAP RFC相关测试; B. 连接管理:配置和管理SAP连接 2. 函数测试:浏览和执行RFC函数 a. 筛选SAP函数,双击函数后,自动解析函数参数,并可按参数类型,生成JSON格式的调用模板; b. SAP按程序标识对应的RFC Target执行后,返回RFC Tool中设置的返回内容。 图片 图片 4. IDOC发送:解析WE60文件,测试相应IDOC a. 自动解析WE60下载的IDOC文件; b. 执行IDOC,返回IDOC编号、状态、XML、Segment等; c. 按“设置”中的配置,决定是否保存测试结果到本地文件。 图片 图片 图片 5. IDOC接收:注册IDOC服务,支持SAP的外向IDOC调用本服务 a. 目前不太稳定; 6. 历史记录:查看执行历史,拷贝输入参数等 a. 查询历史测试文件; b.
SAP 异常现象之同一个IDoc可以被POST两次触发2张不同的物料凭证 玩过SAP IDoc的童鞋都知道,一个IDoc正常情况下是只能被POST一次的,不可以POST两次的。 比如如下的IDoc 0000000205423126已经被POST了,其状态为53, Material Document 4915883417 是该IDoc POST成功之后产生的物料凭证号。 试图使用BD87对于该IDoc Repost, 选中IDoc节点,点击Process按钮, SAP系统报错,不允许POST。这是正常的,也是SAP的标准行为。 笔者认为,这应该是SAP系统的异常行为,绝不是正常的行为。当然,这种情况在笔者从业十多年以来是首次遇到的现象。不能不能引起笔者的好奇,是故笔者认为写下这篇短文,予以记录。 至于原因,只能猜测是由于网络异常等诸多原因引起的SAP数据库更新异常,使得该IDoc可以被顺利的完成了2次POST。 -完- 写于2022-11-29。
SAP 异常现象之同一个IDoc可以被POST两次触发2张不同的物料凭证玩过SAP IDoc的童鞋都知道,一个IDoc正常情况下是只能被POST一次的,不可以POST两次的。 比如如下的IDoc 0000000205423126已经被POST了,其状态为53,Material Document 4915883417 是该IDoc POST成功之后产生的物料凭证号。 试图使用BD87对于该IDoc Repost,选中IDoc节点,点击Process按钮,SAP系统报错,不允许POST。这是正常的,也是SAP的标准行为。 Doc. 5006889463 generated.笔者认为,这应该是SAP系统的异常行为,绝不是正常的行为。当然,这种情况在笔者从业十多年以来是首次遇到的现象。 至于原因,只能猜测是由于网络异常等诸多原因引起的SAP数据库更新异常,使得该IDoc可以被顺利的完成了2次POST。-完-写于2022-11-29。
SAP IDoc E1EDP04 Z8 数据错误之对策 对于公司间采购业务,很多项目启用STO,并且在发货方公司Billing过账的时候,SAP系统自动通过IDoc触发采购方的Invocie。 这是SAP项目实践中对于公司间采购业务场景的常规做法。笔者所在的A项目也不例外。 对于这种场景SAP标准的IDoc就能支持。 一般而言,IDoc的Message Type就是INVOIC01, Message Type是INVOIC。 如下图示:IDoc 0000000000210045, ? 笔者查了Billing的输出,找到了IDoc,看其数据以及状态, ? ? 系统提示,IDoc里E1EDK04 Z8 这个数据片段有问题, ? OBCD维护好后,重新输出billing,则触发的IDoc成功过账了,如下图: ? Document no. 5105609605 created. 2019-06-20 写于苏州市。
RFC是SAP接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。 BAPI基于RFC技术实现,被作为BO的Interface使用,是SAP提供的稳定而强大的业务接口,其增强和版本控制都在业务对象仓库中记录。 IDoc是一种数据交换格式,类似于XML的概念,是SAP标准的文件交换格式。IDoc基于文档,通常IDoc用于异步处理,可以处理批量数据。而RFC常用于同步处理,而且并不适用于批量数据的处理。 同时在Monitor和Troubleshooting方面,IDoc功能非常强大。 ALE主要用于SAP系统内部数据交换。EDI主要用于外部或不同client 间数据交换。 它们同时都可采用 IDoc 的方式作为数据的传输格式。 Web Services是一种松散耦合的组件,使用XML描述交换信息内容,可以保证信息的自描述性和自适应性。
SAP IDoc E1EDP04 Z8 数据错误之对策 对于公司间采购业务,很多项目启用STO,并且在发货方公司Billing过账的时候,SAP系统自动通过IDoc触发采购方的Invocie。 这是SAP项目实践中对于公司间采购业务场景的常规做法。笔者所在的A项目也不例外。 对于这种场景SAP标准的IDoc就能支持。 一般而言,IDoc的Message Type就是INVOIC01, Message Type是INVOIC。 如下图示:IDoc 0000000000210045, 上午收到客户方报告说某个STO单据,Billing成功创建了,Billing的output也成功了,但是却没有发现Invoice单据产生。 笔者查了Billing的输出,找到了IDoc,看其数据以及状态, 系统提示,IDoc里E1EDK04 Z8 这个数据片段有问题, 经查这里的Z8, 来自于VK11里维护的销项税(MWST)价格数据里的销项税税码
除了使用SAP标准的输出类型SPED来实现之外,还可以通过IDoc(DESADV)的方式来实现。 本文就是阐述如何通过IDoc来实现这个功能。 5.1), IDoc type – DELVRY03 Tools > ALE > ALE Development > IDoc > IDoc Type Development > IDoc Types T.Code – WE30 5.2), Message Type – DESADV Tools > ALE > ALE Development > IDoc > IDoc Type Development Partner Type – LS (Logical system) 7, Logical system的定义(SALE),或者直接BD54, Logical system和SAP客户端的分配关系 , Note: 当前我所在的SAP系统就是Client 100. 8, 创建单据,看效果。